Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include financial planning systems, budget planning systems, order management systems, inventory management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems and other enterprise software systems.
Many enterprise performance management and business planning applications require a large base of users to enter data that the software then accumulates into higher level areas of responsibility in the organization. Moreover, once data has been entered, it must be retrieved to be utilized. The system may perform mathematical calculations on the data, combining data submitted by one user with data submitted by another. Using the results of these calculations, the system may generate reports for review by higher management. Often these complex systems make use of multidimensional data sources that organize and manipulate the tremendous volume of data using data structures referred to as data cubes. Each data cube, for example, includes a plurality of hierarchical dimensions having levels and members for storing the multidimensional data.
In recent years vendors of multidimensional data sources for use in enterprise software systems have increasingly adopted the Multidimensional Expression query language (“MDX”) as a platform for interfacing with the data sources. In particular, MDX is a structured query language that software applications utilize to formulate complex queries for retrieving and manipulating the data stored within the multidimensional data sources. . . .
Over time the sophistication of the MDX query processors implemented within the multidimensional data sources has improved and the query language itself has incorporated new constructs. As a result, currently different data source vendors implement their own MDX query processors which exhibit different characteristics from those of other vendors. Thus, the level of MDX support and functionality varies by data source. These differences make heterogeneous MDX query generation very difficult within large enterprise software systems wishing to efficiently utilize multiple MDX data sources from different vendors.
As a result of these differing MDX implementations, it is generally the case that software applications which query different MDX data sources will only present analysis features which are available in the underlying system, disabling any feature which is not supported by the data source vendor. Therefore, in order to be consistent across several different data sources, the enterprise software applications generally present the lowest common denominator in terms of functionality of the MDX data sources within the enterprise system. As a result, a user's experience with the enterprise software system is often sacrificed in that all of the datasets are presented as implementing a limited, basic set of MDX features.